home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / comm / misc / RecentScript.lha / RecentScript / RecentScript.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1997-07-10  |  6.5 KB  |  215 lines

  1. /*****
  2.   $VER: RecentScript Starter 1.3 (9.7.97) ©Arndt van der Molen
  3.  
  4.  
  5.                    RecentScript Starter
  6.  
  7.  is a MUIRexx application and must be started under MUIRexx
  8.  
  9.  1> MUIRexx "RecentScript.rexx [<arg>]" PORT RECENTSCRIPT
  10.  
  11.  This application reads AmiNet index files or recent mails as
  12.  distributed from a mailserver or recent news published in
  13.  the newsgroup '*.comp.sys.amiga.archive'.
  14.  
  15.  It opens a MUI graphical user interface to select files for
  16.  downloading, copying or remembering. Files can be selected
  17.  from several input sources into one final list at one or
  18.  more sessions.
  19.  
  20.  Finally you can generate a final user defined output from
  21.  the selected files. This can be an ARexx/DOS script or
  22.  simply a text file. New output configurations can easily be
  23.  edited, added and may contain user defined variables which
  24.  can be altered within the program.
  25. *****/
  26.  
  27.  
  28.  
  29. /* Change to path with trailing ':' or '/' where this script resides */
  30.  
  31. srcdir = 'MUIREXX:RecentScript/'
  32.  
  33.  
  34.  
  35. /* !!! NOTHING TO CHANGE BELOW THIS LINE !!! */
  36.  
  37. OPTIONS RESULTS
  38.  
  39. PARSE ARG recentfile
  40.  
  41.  
  42. /* Startup code before opening window */
  43.  
  44. portname = 'RECENTSCRIPT'
  45. closecom = '"quit"'
  46.  
  47. PRAGMA('Directory',srcdir)   /* Set current directory */
  48.  
  49. ADDRESS VALUE portname
  50.  
  51. IF ~SHOW('l', "rexxsupport.library") then do
  52.     CALL addlib('rexxsupport.library',0,-30,0)
  53. END
  54.  
  55. /* Get all Config files '*.cfg' to build up menu */
  56.  
  57. configs.0 = 0
  58. i = 0
  59.  
  60. allfiles = showdir(srcdir || 'Configs', 'f', ';')
  61.  
  62. DO WHILE allfiles ~= ''
  63.  
  64.   PARSE VAR allfiles entry';'allfiles
  65.  
  66.   IF RIGHT(entry,4) = ".cfg" & LENGTH(entry) > 4 THEN DO
  67.  
  68.     configs.0 = configs.0 + 1
  69.     i = configs.0
  70.  
  71.     configs.i = LEFT(entry, LENGTH(entry)-4)
  72.  
  73.   END
  74. END
  75.  
  76. /* Build up cycle button string with all configs */
  77.  
  78. cycletext = 'AmiNet Index'
  79.  
  80. DO i=1 TO configs.0
  81.   cycletext = cycletext || ',' || configs.i
  82. END
  83.  
  84.  
  85. /* TAG Attributes Definitions */
  86.  
  87. MUIA_List_Format          = '0x80423c0a'
  88. MUIA_Listview_MultiSelect = '0x80427e08'
  89. MUIA_VertWeight           = '0x804298d0'
  90. MUIA_Busy_Speed           = '0x80020049'
  91. MUIA_Weight               = '0x80421d1f'
  92. MUIA_Menuitem_Shortcut    = '0x80422030'
  93. MUIA_Menuitem_Title       = '0x804218be'
  94.  
  95. /* TAG Methods Definitions */
  96.  
  97. MUIM_Application_OpenConfigWindow = '0x804299ba'
  98.  
  99. /* TAG Variable definitions */
  100.  
  101. MUIV_List_Insert_Bottom           = -3
  102. MUIV_Listview_MultiSelect_Default =  1
  103. MUIV_Busy_Speed_Off               =  0
  104.  
  105. /* GUI Help Bubbles */
  106.  
  107. HLP_BUT_ADD   = '"Adds selected entries to '"'Selected Files'"'"'
  108. HLP_LST_ALL   = '"Multiselect entries and click Select or\nDoubleclick entry"'
  109. HLP_BUT_CLR   = '"Clears the file list"'
  110. HLP_BUT_LOD   = '"Loads an index file"'
  111. HLP_BUT_MINUS = '"Deselects entries with search string"'
  112. HLP_BUT_PLUS  = '"Selects entries with search string"'
  113. HLP_BUT_SAV   = '"Saves the selected files"'
  114. HLP_BUT_TEST  = '"Only for internal use"'
  115. HLP_LST_SEL   = '"Doubleclick to remove entry"'
  116. HLP_STR_PATT  = '"Defines search string (without wildcards!)"'
  117. HLP_CYC_BAT   = '"Defines Batch Mode to use"'
  118.  
  119. /* GUI Commands */
  120.  
  121. CMD_BUT_ADD   = '"'srcdir'RecentScriptCmd 'portname' ADD"'
  122. CMD_LST_ALL   = '"'srcdir'RecentScriptCmd 'portname' ADD"'
  123. CMD_BUT_CLR1  = '"'srcdir'RecentScriptCmd 'portname' CLR LST_ALL"'
  124. CMD_BUT_CLR2  = '"'srcdir'RecentScriptCmd 'portname' CLR LST_SEL"'
  125. CMD_BUT_DEL   = '"'srcdir'RecentScriptCmd 'portname' DEL"' 
  126. CMD_BUT_LOD1  = '"'srcdir'RecentScriptCmd 'portname' LOAD LST_ALL"'
  127. CMD_BUT_LOD2  = '"'srcdir'RecentScriptCmd 'portname' LOAD LST_SEL"'
  128. CMD_BUT_MINUS = '"'srcdir'RecentScriptCmd 'portname' MINUS"' 
  129. CMD_BUT_PLUS  = '"'srcdir'RecentScriptCmd 'portname' PLUS"' 
  130. CMD_BUT_SAV   = '"'srcdir'RecentScriptCmd 'portname' SAVE"' 
  131. CMD_BUT_TEST  = '"'srcdir'RecentScriptCmd 'portname' TEST"'
  132. CMD_MEN_SETB  = '"'srcdir'RecentScriptCmd 'portname' SETBAT dummy [%s]"'
  133.  
  134. /* GUI Titles */
  135.  
  136. TLE_LST_ALL = ''"\033bFile,\033bDir,\033bSize,\033bDescription"''
  137. TLE_LST_SEL = ''"\033bFile,\033bDir,\033bSize,\033bDescription"''
  138.  
  139. /* GUI Definitions */
  140.  
  141. window ID RECSCRWIN TITLE 'RecentScript' COMMAND closecom PORT portname
  142.  
  143.   menu LABEL 'Project'
  144.  
  145.     item COMMAND '"request TITLE About GADGETS '"_OK"' FILE 'srcdir'Internals/about.txt"' PORT portname LABEL 'About...'
  146.     item ATTRS MUIA_Menuitem_Title '-1'
  147.     item COMMAND closecom PORT portname ATTRS MUIA_Menuitem_Shortcut 'Q' LABEL 'Quit'
  148.   endmenu
  149.  
  150.   menu LABEL 'Settings'
  151.  
  152.     menu LABEL 'Batch Mode'
  153.  
  154.       /* For each found config add one menuitem */
  155.       DO i=1 TO configs.0
  156.         item COMMAND CMD_MEN_SETB LABEL configs.i
  157.       END
  158.     endmenu
  159.  
  160.     item ATTRS MUIA_Menuitem_Title '-1'
  161.     item COMMAND '"method 'MUIM_Application_OpenConfigWindow'"' PORT portname LABEL 'MUI...'
  162.   endmenu
  163.  
  164.   group ATTRS MUIA_VertWeight 70 FRAME LABEL 'AmiNet Index'
  165.  
  166.     list ID LST_ALL COMMAND CMD_LST_ALL HELP HLP_LST_ALL TITLE TLE_LST_ALL ATTRS MUIA_Listview_MultiSelect MUIV_Listview_MultiSelect_Default MUIA_List_Format '"MIW=24 BAR, MIW=5 BAR, MIW=1 P=\033r BAR, MIW=70"'
  167.  
  168.     group HORIZ
  169.       group HORIZ FRAME
  170.         button ATTRS MUIA_Weight 50 COMMAND CMD_BUT_ADD   HELP HLP_BUT_ADD   LABEL 'Select'
  171.         string ATTRS MUIA_Weight 50 ID STR_PATT           HELP HLP_STR_PATT
  172.         button ATTRS MUIA_Weight 0  COMMAND CMD_BUT_PLUS  HELP HLP_BUT_PLUS  LABEL '+'
  173.         button ATTRS MUIA_Weight 0  COMMAND CMD_BUT_MINUS HELP HLP_BUT_MINUS LABEL '-'
  174.       endgroup
  175.       group HORIZ FRAME
  176.         button COMMAND CMD_BUT_LOD1 HELP HLP_BUT_LOD LABEL 'Load...'
  177.         button COMMAND CMD_BUT_CLR1 HELP HLP_BUT_CLR LABEL 'Clear'
  178.       endgroup
  179.     endgroup
  180. /*    button ATTRS MUIA_Weight 0  COMMAND CMD_BUT_TEST  HELP HLP_BUT_TEST  LABEL 'Test' */
  181.   endgroup
  182.  
  183.   object CLASS '"Busy.mcc"' ID CLS_BUSY ATTRS MUIA_VertWeight 0 MUIA_Busy_Speed MUIV_Busy_Speed_Off
  184.   object CLASS '"Balance.mui"'
  185.  
  186.   group ATTRS MUIA_VertWeight 30 FRAME LABEL 'Selected Files'
  187.  
  188.     list ID LST_SEL COMMAND CMD_BUT_DEL HELP HLP_LST_SEL TITLE TLE_LST_SEL ATTRS MUIA_List_Format '"MIW=24 BAR, MIW=5 BAR, MIW=1 P=\033r BAR, MIW=70"'
  189.  
  190.     group HORIZ
  191.       group HORIZ FRAME
  192.         button COMMAND CMD_BUT_SAV  HELP HLP_BUT_SAV LABEL 'Save...'
  193.         label '"as"'
  194.         cycle  ID CYC_BAT           HELP HLP_CYC_BAT LABELS cycletext
  195.       endgroup
  196.       group HORIZ FRAME
  197.         button COMMAND CMD_BUT_LOD2 HELP HLP_BUT_LOD LABEL 'Load...'
  198.         button COMMAND CMD_BUT_CLR2 HELP HLP_BUT_CLR LABEL 'Clear'
  199.       endgroup
  200.     endgroup
  201.  
  202.   endgroup
  203. endwindow
  204.  
  205.  
  206. /* Startup code after opening window */
  207.  
  208. IF recentfile ~= '' THEN DO
  209.   call RecentScriptCmd portname LOAD LST_ALL '['recentfile']'
  210. END
  211.  
  212. call RecentScriptCmd portname LOAD LST_SEL '['srcdir'RecentScript.lst]'
  213.  
  214. exit
  215.